The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.
Different data models often trade an advantage in one aspect for a disadvantage in another aspect. For example, a relational data model may exhibit an internal complexity that supports efficient processing of complex queries at the expense of increased latency for even simple queries. In contrast, for example, a key-value data model may offer low latency, high throughput query access for simple queries but may be unable to process complex queries. Thus, it may be beneficial and desirable to maintain data in multiple data models in order to reap the benefits of each data model.
One approach for maintaining data in multiple data models is to implement a dedicated database management system for each different data model. For example, there may be a standalone database management system that only implements and supports a key-value data model and another standalone database management system that only implements and supports a relational data model. However, the overhead involved in maintaining separate database management systems may eliminate any gains made by implementing the separate database management systems. For example, maintaining transactional consistency between data in separate database management systems may involve a data replication implementation that is more complex than the implementation of a key-value database itself.
Thus, there is a need for a new approach to maintaining data in multiple data models that enables exploiting the advantages of each data model while minimizing the disadvantages of each data model.